.root {
    /* Note that counting for odd/even starts at 0, thus the first displayed row is even */
    -jr-row-odd-background: -fx-control-inner-background-alt;
    -jr-row-even-background: -fx-control-inner-background;
    /*
    On light theme, the text is hard to see when it's on top of the accent color. This is an alternative lighter accent color
    for better text visibility.
    */
    -jr-accent-alt: derive(-jr-accent, 15%);

    /*
    The theme color and some derived colors from it are used for icons, tab-headers, marking of selected inputs and
    hover colors for the main menu. It generally defines the look of JabRef. The highlighting colors below should
    work nicely with this base color
    */

    /* original JabRef dark blue color */
    -jr-theme: #50618F;

    -jr-accent: #a3b7e6;
    -jr-transparent-accent: rgba(163, 183, 230, 0.16);
    -jr-checked: -jr-theme;

    -jr-selected: -jr-accent;

    -jr-hover: #0002;
    -jr-hover-text: -fx-focused-text-base-color;

    /* The base gray. Most gray-tones in the application are derived from this color. */
    -jr-base: #ebebeb;

    -jr-white: #ffffff;
    -jr-gray-0: #f2f2f2;
    -jr-gray-1: #dddddd;
    -jr-gray-2: #808080;
    -jr-gray-3: #404040;
    -jr-black: #000;

    /* Some blueish greys - currently not used */
    -jr-blue-gray-1: #c8d6e5;
    -jr-blue-gray-1-darker: derive(-jr-blue-gray-1, -5%);
    -jr-blue-gray-2: #8395a7;
    -jr-blue-gray-2-darker: derive(-jr-blue-gray-2, -5%);
    -jr-blue-gray-3: #576574;
    -jr-blue-gray-3-darker: derive(-jr-blue-gray-3, -5%);
    -jr-blue-gray-4: #222f3e;
    -jr-blue-gray-4-darker: derive(-jr-blue-gray-4, -5%);

    /* Highlights */
    -jr-blue: #0abde3;
    -jr-light-blue: #48dbfb;
    -jr-purple: #7559C2;
    -jr-light-purple: #ff9ff3;
    -jr-green: #10ac84;
    -jr-light-green: #1dd1a1;
    -jr-red: #ee5253;
    -jr-light-red: #ff6b6b;
    -jr-yellow: #feca57;
    -jr-orange: #ff9f43;

    /* Background specs */
    -jr-background-alt: -fx-background;
    -jr-text-area-background: derive(-jr-base, 80%);
    -jr-search-background: -jr-text-area-background;
    -jr-toolbar: derive(-jr-base, 46.4%);
    -jr-menu-background: derive(-jr-base, 46.4%);
    -jr-menu-background-active: -jr-hover;

    -jr-menu-foreground: -fx-dark-text-color;
    -jr-menu-item-foreground: -fx-dark-text-color;
    -jr-menu-forground-active: -fx-dark-text-color;

    -jr-head-fg: -fx-text-inner-color;

    /* All icons/text on toolbars */
    -jr-theme-text: -jr-theme;

    -jr-icon-background: transparent;
    -jr-icon-background-active: #0001;
    -jr-icon-background-armed: #0002;

    /* Colors for messages and errors */
    -jr-info: -jr-light-green;
    -jr-warn: -jr-orange;
    -jr-error: -jr-light-red;
    -jr-success: -jr-green;

    /* Color for the small group view indicator for the number of hits */
    -jr-group-hits-bg: derive(-jr-sidepane-background, -50%);
    -jr-group-hits-fg: ladder(
            -jr-group-hits-bg,
            -fx-light-text-color 45%,
            -fx-dark-text-color 46%,
            -fx-dark-text-color 59%,
            -fx-mid-text-color 60%
    );

    /* Specific color for general tooltips */
    -jr-tooltip-bg: -jr-accent;
    -jr-tooltip-fg: -jr-black;

    /* Finally, some specific jr styles that depend on -fx definitions in *this* style */
    -jr-sidepane-background: -jr-gray-1;
    -jr-sidepane-header-background: -jr-gray-1;
    -jr-sidepane-header-color: -jr-theme-text;

    /* Specs for the scrollbars */
    -jr-scrollbar-thumb: derive(-fx-outer-border, -30%);
    -jr-scrollbar-track: derive(-fx-control-inner-background, -10%);

    -jr-separator: derive(-fx-color, -5%);

    -jr-search-text: -fx-text-base-color;

    /* For drag and drop actions */
    -jr-drag-target: -jr-purple;
    -jr-drag-target-hover: derive(-jr-purple, 80%);

    -js-summary-text-color: #000000;
    -js-summary-text-color-selected: #000000;

    /*
     Here are redefinitions of the default properties of modena. They should in principle all be derived from the
     above colors. Goal should be to make as few as possible direct color-changes to elements and only do this for
     very specific purposes.
     */
    -fx-base: -jr-base;

    /* A very light grey used for the background of windows.  See also
     * -fx-text-background-color, which should be used as the -fx-text-fill
     * value for text painted on top of backgrounds colored with -fx-background.
     */
    -fx-background: derive(-fx-base, 26.4%);

    /* Used for the inside of text boxes, password boxes, lists, trees, and
     * tables.  See also -fx-text-inner-color, which should be used as the
     * -fx-text-fill value for text painted on top of backgrounds colored
     * with -fx-control-inner-background.
     */
    -fx-control-inner-background: derive(-fx-base, 95%);
    /* Version of -fx-control-inner-background for alternative rows */
    -fx-control-inner-background-alt: derive(-fx-control-inner-background, -6%);

    /* One of these colors will be chosen based upon a ladder calculation
     * that uses the brightness of a background color.  Instead of using these
     * colors directly as -fx-text-fill values, the sections in this file should
     * use a derived color to match the background in use.  See also:
     *
     * -fx-text-base-color for text on top of -fx-base, -fx-color, and -fx-body-color
     * -fx-text-background-color for text on top of -fx-background
     * -fx-text-inner-color for text on top of -fx-control-inner-color
     * -fx-selection-bar-text for text on top of -fx-selection-bar
     */
    -fx-dark-text-color: -jr-black;
    -fx-mid-text-color: -jr-gray-3;
    -fx-light-text-color: -jr-white;

    /* We overwrite accents -> make old stick out  */
    -fx-accent: red;

    /* Default buttons color, this is similar to accent but more subtle */
    -fx-default-button: derive(-jr-accent, 50%);

    /* A bright blue for the focus indicator of objects. Typically used as the
     * first color in -fx-background-color for the "focused" pseudo-class. Also
     * typically used with insets of -1.4 to provide a glowing effect.
     */
    -fx-focus-color: -jr-accent;
    -fx-faint-focus-color: derive(-jr-accent, 50%);

    /* The color that is used in styling controls. The default value is based
     * on -fx-base, but is changed by pseudoclasses to change the base color.
     * For example, the "hover" pseudoclass will typically set -fx-color to
     * -fx-hover-base (see below) and the "armed" pseudoclass will typically
     * set -fx-color to -fx-pressed-base.
     */
    -fx-color: -fx-base;

    -fx-hover-base: derive(-fx-base, 30%);

    /* A little darker than -fx-base and used as the -fx-color for the
     * "armed" pseudoclass state.
     *
     * TODO: should this be renamed to -fx-armed-base?
     */
    -fx-pressed-base: derive(-fx-base, -6%);

    /* A little darker than -fx-color and used to draw boxes around objects such
     * as progress bars, scroll bars, scroll panes, trees, tables, and lists.
     */
    -fx-box-border: derive(-fx-color, -5%);

    /* Darker than -fx-background and used to draw boxes around text boxes and
     * password boxes.
     */
    -fx-text-box-border: derive(-fx-background, -15%);

    /* Lighter than -fx-background and used to provide a small highlight when
     * needed on top of -fx-background. This is never a shadow in Modena but
     * keep -fx-shadow-highlight-color name to be compatible with Caspian.
     */
    -fx-shadow-highlight-color: rgba(255, 255, 255, 0.07) 70%;

    /* A gradient that goes from a little darker than -fx-color on the top to
     * even more darker than -fx-color on the bottom.  Typically is the second
     * color in the -fx-background-color list as the small thin border around
     * a control. It is typically the same size as the control (i.e., insets
     * are 0).
     */
    -fx-outer-border: derive(-fx-color, -5%);

    /* A gradient that goes from a bit lighter than -fx-color on the top to
     * a little darker at the bottom.  Typically is the third color in the
     * -fx-background-color list as a thin highlight inside the outer border.
     * Insets are typically 1.
     */
    -fx-inner-border: derive(-fx-color, 65%);
    -fx-inner-border-horizontal: derive(-fx-color, 65%);
    -fx-inner-border-bottomup: derive(-fx-color, 65%);

    /*-fx-inner-border: red;*/
    /*-fx-inner-border-horizontal: green;*/
    /*-fx-inner-border-bottomup: blue;*/

    /* A gradient that goes from a little lighter than -fx-color at the top to
     * a little darker than -fx-color at the bottom and is used to fill the
     * body of many controls such as buttons.
     */
    -fx-body-color: derive(-fx-color, 20%);
    -fx-body-color-bottomup: derive(-fx-color, 20%);
    -fx-body-color-to-right: derive(-fx-color, 20%);

    /* The small thin light "shadow" for mark-like objects. Typically used in
     * conjunction with -fx-mark-color with an insets of 1 0 -1 0. */
    -fx-mark-color: -fx-text-base-color;
    -fx-mark-highlight-color: transparent;
    /*-fx-mark-highlight-color: derive(-fx-color,80%);*/

    /* Background for items in list like things such as menus, lists, trees,
     * and tables. */
    -fx-selection-bar: -jr-accent;

    /* Background color to use for selection of list cells etc. This is when
     * the control doesn't have focus or the row of a previously selected item. */
    -fx-selection-bar-non-focused: lightgrey;

    /* The color to use as -fx-text-fill when painting text on top of
     * backgrounds filled with -fx-selection-bar. */
    -fx-selection-bar-text: -fx-text-background-color;

    /* These are needed for Popup */
    -fx-background-color: inherit;
    -fx-background-radius: inherit;
    -fx-background-insets: inherit;
    -fx-padding: inherit;

    /** Focus line for keyboard focus traversal on cell based controls */
    -fx-cell-focus-inner-border: derive(-fx-selection-bar, 30%);

    -fx-focused-mark-color: -fx-focused-text-base-color;

    /* Consistent size for headers of tab-pane and side-panels*/
    -jr-header-height: 3em;

    /* AI chat style */
    -jr-ai-message-user: derive(-jr-accent, 50%);
    -jr-ai-message-user-border: -jr-theme;
    -jr-ai-message-ai: derive(-jr-accent, 80%);
    -jr-ai-message-ai-border: -jr-theme;
    -jr-ai-message-error: -jr-error;
    -jr-ai-message-error-border: derive(-jr-error, -40%);

    /* region: maintable base colors **/

    -jr-match-1-odd: -jr-row-odd-background;
    -jr-match-1-even: -jr-row-even-background;
    -jr-match-1-text-color: -fx-mid-text-color;

    -jr-match-2-odd: derive(-jr-theme, 100%);
    -jr-match-2-even: derive(-jr-match-2-odd, 10%);
    -jr-match-2-text-color: -fx-mid-text-color;

    -jr-match-3-odd: derive(-jr-theme, 50%);
    -jr-match-3-even: derive(-jr-match-3-odd, 10%);
    -jr-match-3-text-color: derive(-jr-accent, 30%);

    -jr-match-4-odd: -jr-theme;
    -jr-match-4-even: derive(-jr-match-4-odd, 10%);
    -jr-match-4-text-color: -jr-accent;

    -jr-maintable-focused-hover-text: -jr-white;

    /* endregion */
}

.unchanged {
    -rtfx-background-color: #0000;
}

.updated {
    -rtfx-background-color: rgba(41, 166, 236, 0.66);
}

.addition {
    -rtfx-background-color: rgba(29, 209, 161, 0.5);
}

.deletion {
    -rtfx-background-color: rgba(255, 107, 107, 0.55);
}

#frame {
    -fx-background-color: -jr-background-alt;
}

/*
 * The base css file defining the style that is valid for every pane and dialog.
 */

TextFlow > * {
    -fx-fill: -fx-text-background-color;
}

TextFlow > .hyperlink,
.hyperlink {
    -fx-padding: 0;
    -fx-underline: false;
    -fx-border-style: null;
    -fx-border-color: null;
    -fx-text-fill: -jr-theme;
    -fx-fill: -jr-theme;
}

TextFlow > .hyperlink:visited,
.hyperlink:visited {
    -fx-text-fill: -jr-accent;
    -fx-fill: -jr-accent;
}

.TextFlow > .hyperlink:hover,
.hyperlink:hover {
    -fx-underline: true;
}

.TextFlow > .embeddedHyperlink {
    -fx-padding: 0.166667em 0.25em 0.166667em 0.25em;
}

.glyph-icon {
    /* This adjusts text alignment within the bounds of text nodes so that
       the text is always vertically centered within the bounds. Based on
       the cap height of the text. */
    -fx-bounds-type: logical_vertical_center;

    /* The base color of icons should always be the same as the text. */
    -fx-fill: -fx-text-base-color;
}

.ikonli-font-icon {
    -fx-icon-color: -fx-text-base-color;
}

.tooltip {
    -fx-background-color: -jr-tooltip-bg;
    -fx-opacity: 95%;
    -fx-text-fill: -jr-tooltip-fg;
    -fx-font-size: 1em;
    -fx-show-delay: 300ms;
    -fx-hide-delay: 300ms;
}

.tooltip > TextFlow > Text {
    -fx-font-size: 1em;
}

TextFlow > .tooltip-text-bold {
    -fx-font-weight: bold;
}

TextFlow > .tooltip-text-italic {
    -fx-font-style: italic;
}

TextFlow > .tooltip-text-monospaced {
    -fx-font-family: monospace;
}


.radio-button > .radio,
.check-box > .box {
    -fx-background-color: transparent;
    -fx-background-insets: 0;
    -fx-background-radius: 0;
    -fx-text-fill: -fx-text-base-color;
}

.button,
.toggle-button,
.menu-button,
.choice-box,
.combo-box-base,
.combo-box-base:editable > .arrow-button {
    -fx-background-color: transparent;
    -fx-background-insets: 0;
    -fx-background-radius: 0.25em;
    -fx-text-fill: -fx-text-base-color;
}

.button {
    -fx-background-color: transparent;
    -fx-border-color: -fx-outer-border; /* rgba(0, 0, 0, 0.23); */
    -fx-border-width: 0.062em;
    -fx-border-radius: 0.25em;
    -fx-padding: 0.5em 1em 0.5em 1em;
}

.menu-button > .label {
    -fx-padding: 0 8 0 8;
}

.button:hover {
    -fx-background-color: rgba(0, 0, 0, 0.12);
}

.button:focused,
.button:pressed {
    -fx-background-color: rgba(0, 0, 0, 0.3);
}

.button:default {
    -fx-background-color: -fx-default-button;
}

.button:default:hover {
    -fx-background-color: derive(-fx-default-button, -10%);
}

.button:default:focused,
.button:default:pressed {
    -fx-background-color: derive(-fx-default-button, -20%);
}

.text-button {
    -fx-border-width: 0;
}

.contained-button {
    -fx-background-color: -jr-accent;
    -fx-border-color: -jr-accent;
}

.icon-buttonNoSpaceBottom,
.icon-buttonNoSpaceTop,
.icon-button {
    -fx-border-width: 0;
    -fx-background-color: -jr-icon-background;
    -fx-padding: 0.5em;
}

.toggle-button:hover,
.toggle-button:selected:hover,
.icon-buttonNoSpaceBottom:hover,
.icon-buttonNoSpaceTop:hover,
.icon-button:hover {
    -fx-background-color: -jr-icon-background-active;
}

.icon-buttonNoSpaceBottom:armed,
.icon-buttonNoSpaceTop:armed,
.icon-button:armed {
    -fx-background-color: -jr-icon-background-armed;
}

.icon-button:selected {
    -fx-background-color: -jr-icon-background-active;
    -fx-text-fill: white;
    -fx-fill: white;
}

.icon-button:disabled {
    -fx-opacity: 0.4;
}

.toggle-button:selected {
    -fx-background-color: -jr-icon-background-active;
    -fx-text-fill: -jr-selected;
    -fx-fill: -jr-selected;
}

.icon-buttonNoSpaceBottom {
    -fx-padding: 0.5em 0.5em -0.1em 0.5em;
}

.icon-buttonNoSpaceTop {
    -fx-padding: -0.1em 0.5em 0.5em 0.5em;
}

.progress-indicator {
    -fx-progress-color: -jr-theme;
    -fx-border-width: 0;
    -fx-background-color: -jr-icon-background;
}

.progress-indicator:hover {
    -fx-background-color: -jr-icon-background-active;
}

.progress-indicatorToolbar {
    -fx-padding: 0.5em;
}

.progress-indicatorToolbar .percentage {
    -fx-fill: null;
}

.check-box {
    -fx-label-padding: 0.0em 0.0em 0.0em 0.75em;
    -fx-text-fill: -fx-text-background-color;
}

.check-box > .box {
    -fx-border-color: -fx-outer-border; /* rgba(0, 0, 0, 0.54); */
    -fx-border-width: 0.125em;
    -fx-border-radius: 0.062em;
    -fx-padding: 0.1em 0.1em 0.2em 0.2em;
}

.check-box:selected > .box {
    -fx-background-insets: 0.125em;
    -fx-border-color: -jr-checked;
    -fx-background-color: -jr-checked;
}

.check-box > .box > .mark {
    -fx-padding: 0.2em 0.2em 0.2em 0.2em;
}

.check-box:selected > .box > .mark {
    -fx-background-color: -fx-control-inner-background;
    -fx-shape: "M6.61 11.89L3.5 8.78 2.44 9.84 6.61 14l8.95-8.95L14.5 4z";
    -fx-stroke-width: 5;
}

.radio-button > .radio {
    -fx-background-radius: 1.0em; /* large value to make sure this remains circular */
    -fx-padding: 0.35em; /* padding from outside edge to the inner dot */
    -fx-background-color: rgba(0, 0, 0, 0.54), -fx-control-inner-background;
    -fx-background-insets: 0, 0.125em;
}

.radio-button:selected > .radio {
    -fx-background-color: -jr-checked, -fx-background;
}

.radio-button > .radio > .dot {
    -fx-padding: 0.25em; /* radius of the inner dot when selected */
    -fx-background-insets: 0;
}

.radio-button:selected > .radio > .dot {
    -fx-background-color: -jr-checked;
}

.menu-bar {
    -fx-background-color: -jr-menu-background;
    -fx-background-insets: 0;
    -fx-background-radius: 0;
}

.menu-bar > .container > .menu-button > .label {
    -fx-padding: 0.41777em 0.41777em 0.41777em 0.41777em;
}

.menu-bar > .menu {
    -fx-padding: 0.0em 0.666667em 0.0em 0.666667em;
}

.menu-bar .menu-button {
    -fx-border-color: transparent;
    -fx-border-width: 0;
    -fx-border-radius: 0;
}

.menu-item {
    -fx-padding: 0.5em 0.41777em 0.5em 0.41777em;
}

.tab-pane {
    -fx-open-tab-animation: NONE;
    -fx-close-tab-animation: NONE;
}

.tab-pane > .tab-header-area > .headers-region > .tab {
    -fx-background-insets: 0;
    -fx-background-radius: 0;
    -fx-background-color: -jr-background-alt;
    -fx-border-color: -fx-outer-border;
    -fx-border-width: 0.5 0.5 0.5 0.5;
    -fx-padding: 0.3em 0.9em 0.3em 0.9em;
    -fx-pref-height: -jr-header-height;
}

.tab-pane > .tab-header-area > .headers-region > .tab .tab-label {
    -fx-text-fill: -fx-mid-text-color;
}

.tab-pane > .tab-header-area > .headers-region > .control-buttons-tab {
    -fx-border-color: -jr-theme;
    -fx-fill: -jr-theme-text;
    -fx-text-fill: -jr-theme-text;
}

.tab-pane > .tab-header-area > .headers-region > .tab:selected {
    -fx-background-color: -fx-control-inner-background;
    -fx-border-color: -jr-theme;
    -fx-border-width: 3 0 0 0;
}

.tab-pane > .tab-header-area > .headers-region > .tab:selected .tab-label {
    -fx-fill: -jr-theme-text;
    -fx-text-fill: -jr-theme-text;
}

.tab-pane > .tab-header-area > .headers-region > .tab:selected .tab-close-button {
    -fx-background-color: -jr-theme-text;
}

.tab-pane > .tab-header-area > .headers-region > .tab:selected .glyph-icon {
    -fx-fill: -fx-mid-text-color;
    -fx-text-fill: -fx-mid-text-color;
}

.tab-pane:focused > .tab-header-area > .headers-region > .tab:selected .focus-indicator {
    -fx-border-width: 0;
    -fx-border-insets: 0;
    -fx-border-radius: 0;
}

.tab-pane > .tab-header-area > .headers-region > .tab.drop {
    -fx-border-color: -jr-drag-target;
    -fx-background-color: -jr-drag-target-hover;
    -fx-border-width: 3 1 1 1;
}

.tab-pane > .tab-header-area > .headers-region > .tab.drop .tab-label {
    -fx-fill: -jr-drag-target;
    -fx-text-fill: -jr-drag-target;
}

.tab-pane > .tab-header-area > .tab-header-background {
    -fx-background-color: -jr-background-alt;
}

.tab-pane > .tab-header-area > .headers-region > .tab .glyph-icon {
    -glyph-size: 0.812em;
    -fx-fill: -fx-mid-text-color;
    -fx-text-fill: -fx-mid-text-color;
}

.tab-pane > .tab-header-area > .headers-region > .tab:selected .glyph-icon {
    -fx-fill: -jr-theme-text;
    -fx-text-fill: -jr-theme-text;
}

.tab-pane > .tab-header-area {
    -fx-padding: 0 0 0 0;
}

.tab-pane.hide-tab-bar > .tab-header-area {
    -fx-pref-height: 0;
    visibility: collapse;
}

.numberColumn > .hits:any-selected {
    -fx-background-color: derive(-jr-green, 70%);
}

.table-view,
.tree-table-view {
    -fx-background-insets: 0;
    -fx-padding: 0;
}

.table-view:focused,
.tree-table-view:focused {
    -fx-background-insets: 0;
}

.split-pane > .split-pane-divider {
    -fx-background-color: -jr-sidepane-background;
    -fx-padding: 0 .5 0 .5;
}

.table-row-cell:hover,
.table-row-cell:hover:even,
.tree-table-row-cell:hover {
    -fx-background-color: -jr-hover;
    -fx-fill: -jr-hover-text;
    -fx-text-fill: -jr-hover-text;
}

.tree-table-row-cell:selected > .tree-table-cell > .glyph-icon {
    -fx-fill: white;
    -fx-text-fill: white;
}

.table-view > .virtual-flow > .clipped-container > .sheet > .table-row-cell .table-cell:selected,
.tree-table-view > .virtual-flow > .clipped-container > .sheet > .tree-table-row-cell .tree-table-cell:selected {
    -fx-border-color: transparent;
    -fx-background-insets: 0;
}

.merge-field-value .action-icon {
    -fx-blend-mode: multiply;
    -fx-opacity: 69%;
    -fx-icon-size: 14;
    -fx-icon-color: -fx-text-background-color;
}

.merge-field-value:disabled .action-icon {
    -fx-opacity: 0%;
}

.merge-header-cell {
    -fx-border-width: 0 0 1 0;
    -fx-border-color: -jr-gray-1;
    -fx-background-color: -jr-row-even-background;
}

.merge-header {
    -fx-background-color: -jr-row-even-background;
}

.lib-change-header {
    -fx-font-size: 130%;
    -fx-padding: 0.2em 0em 0.2em 0.2em;
}

.lib-change-legend {
    -fx-font-size: 11px;
    -fx-text-fill: #555;
    -fx-padding: 4 0 0 5;
}

.table-view .groupColumnBackground {
    -fx-stroke: -jr-gray-2;
}

.scroll-pane:focused,
.split-pane:focused,
.list-view:focused,
.tree-view:focused,
.table-view:focused,
.tree-table-view:focused,
.html-editor:contains-focus {
    -fx-background-color: -fx-control-inner-background;
    -fx-background-insets: 0;
    -fx-background-radius: 0;
}

/* Selected rows */
.list-view:focused > .virtual-flow > .clipped-container > .sheet > .list-cell:filled:selected,
.tree-view:focused > .virtual-flow > .clipped-container > .sheet > .tree-cell:filled:selected,
.table-view:focused > .virtual-flow > .clipped-container > .sheet > .table-row-cell:filled:selected,
.tree-table-view:focused > .virtual-flow > .clipped-container > .sheet > .tree-table-row-cell:filled:selected,
.table-view:focused > .virtual-flow > .clipped-container > .sheet > .table-row-cell .table-cell:selected,
.tree-table-view:focused > .virtual-flow > .clipped-container > .sheet > .tree-table-row-cell .tree-table-cell:selected {
    -fx-background: -jr-selected;
    -fx-background-color: -jr-selected;
    -fx-table-cell-border-color: transparent;
}

/* Selected when control is not focused
 * In the context of the MainTable: an element is focused at a double click. A single click "just" selects it.
 */
.list-cell:filled:selected,
.tree-cell:filled:selected,
.table-row-cell:filled:selected,
.tree-table-row-cell:filled:selected,
.table-row-cell:filled > .table-cell:selected,
.tree-table-row-cell:filled > .tree-table-cell:selected {
    -fx-background: -jr-selected;
    -fx-background-color: -jr-selected;
    -fx-table-cell-border-color: transparent;
    -fx-text-fill: -jr-black;
}

.table-cell:invalid,
.list-cell:invalid {
    -fx-background-color: -jr-warn;
}

.duplicate-entry {
    -fx-background-color: -jr-light-green;
}

.file-row-text {
    -fx-fill: -jr-search-text;
}

.file-row-text:opacity {
    -fx-fill: derive(-jr-search-text, 70%);
}

.combo-box-base {
    -fx-background-color: -fx-outer-border, -fx-control-inner-background;
    -fx-background-insets: 0, 1;
    -fx-background-radius: 0, 0;
}

.combo-box > .list-cell {
    -fx-background-color: -fx-outer-border, -fx-control-inner-background;
    -fx-background-insets: 0, 1 0 1 1;
    -fx-text-fill: -fx-text-base-color;
}

.combo-box-popup > .list-view {
    -fx-background-color: -fx-control-inner-background;
    -fx-background-insets: 0;
    -fx-effect: null;
    -fx-border-width: 1;
    -fx-border-color: -fx-outer-border;
    -fx-padding: 0;
}

.combo-box-popup > .list-view > .virtual-flow > .clipped-container > .sheet > .list-cell {
    -fx-padding: 4 0 4 5;
    /* No alternate highlighting */
    -fx-background: -fx-control-inner-background;
}

.combo-box-popup > .list-view > .virtual-flow > .clipped-container > .sheet > .list-cell:filled:hover {
    -fx-background: -fx-control-inner-background;
    -fx-background-color: -jr-hover;
}

.combo-box-popup > .list-view > .virtual-flow > .clipped-container > .sheet > .list-cell:filled:selected,
.combo-box-popup > .list-view > .virtual-flow > .clipped-container > .sheet > .list-cell:filled:selected:hover {
    -fx-background: -fx-control-inner-background;
    -fx-background-insets: 0;
}

.combo-box-popup > .list-view > .placeholder > .label {
    -fx-text-fill: -fx-text-base-color;
}

.stack-pane,
.scroll-pane,
.scroll-pane > .viewport,
.split-pane {
    -fx-background-color: transparent;
    -fx-background-insets: 0, 0;
    -fx-padding: 0;
}

.accordion .titled-pane {
    -fx-skin: "org.jabref.gui.util.CustomTitledPaneSkin";
    -fx-arrow-side: right;
}

.accordion .titled-pane .title {
    -fx-background-color: transparent;
    -fx-border-color: transparent;
    -fx-background-insets: 5 5 5 5;
}

.accordion .titled-pane > *.content {
    -fx-background-color: transparent;
    -fx-border-color: transparent;
}

/*
 * The arrow button has some right padding that's added
 * by "modena.css". This simply puts the padding on the
 * left since the arrow is positioned on the right.
 */
.titled-pane > .title > .arrow-button {
    -fx-padding: 0.0em 0.0em 0.0em 0.583em;
}

.text-input {
    -fx-background-color: -fx-outer-border, -fx-control-inner-background;
    -fx-background-insets: 0, 1;
    -fx-prompt-text-fill: -jr-gray-2;
}

.text-input:focused {
    -fx-highlight-fill: derive(-jr-accent, 20%);
    -fx-background-color: -jr-accent, -fx-control-inner-background;
    -fx-background-insets: 0, 2;
    -fx-highlight-text-fill: -fx-text-inner-color;
}

.text-area {
    -fx-background-color: -fx-control-inner-background;
}

.text-area .content {
    -fx-background-color: -fx-outer-border, -fx-control-inner-background;
    -fx-background-insets: 0, 1;
    -fx-padding: 0.333333em 0.583em 0.333333em 0.583em;
    -fx-background-radius: 0;
}

.text-area:focused .content {
    -fx-background-color: -jr-accent, -fx-control-inner-background;
    -fx-background-insets: 0, 2;
    -fx-background-radius: 0;
}

.text-area > .scroll-pane > .corner {
    -fx-background-radius: 0 0 0 0;
    -fx-background-color: -fx-background;
}

.combo-box-base:editable > .text-field,
.date-picker > .text-field {
    -fx-background-color: -fx-outer-border, -fx-control-inner-background;
    -fx-background-insets: 0, 1;
    -fx-background-radius: 0;
}

.combo-box-base:editable:focused > .text-field,
.combo-box-base:editable > .text-field:focused,
.date-picker > .text-field:focused {
    -fx-background-color: -jr-accent, -fx-control-inner-background;
    -fx-background-insets: 0, 2;
    -fx-background-radius: 0;
}

.date-picker:focused > .text-field {
    -fx-background-color: -fx-control-inner-background;
    -fx-background-insets: 0;
}

.scroll-bar {
    -fx-background-color: transparent;
    -fx-opacity: 0.3;
}

.scroll-bar:horizontal .track,
.scroll-bar:vertical .track {
    -fx-background-color: -jr-scrollbar-track;
    -fx-opacity: 0.6;
    -fx-background-radius: 0em;
}


.scroll-bar:horizontal .thumb,
.scroll-bar:vertical .thumb {
    -fx-background-color: -jr-scrollbar-thumb;
    -fx-background-insets: 0, 0, 0;
    -fx-background-radius: 0em;
}

.scroll-bar .thumb:hover,
.scroll-bar .thumb:pressed {
    -fx-background-color: derive(-jr-scrollbar-thumb, -30%);
}

/* Hide increment and decrement buttons */
.scroll-bar > .increment-button,
.scroll-bar > .decrement-button {
    -fx-background-color: null;
    -fx-background-radius: 0;
    -fx-background-insets: 0;
    -fx-padding: 0;
}

/* Hide increment and decrement arrows */
.scroll-bar:horizontal > .decrement-button > .decrement-arrow,
.scroll-bar:horizontal > .increment-button > .increment-arrow,
.scroll-bar:vertical > .decrement-button > .decrement-arrow,
.scroll-bar:vertical > .increment-button > .increment-arrow {
    -fx-background-color: null;
    -fx-background-radius: 0;
    -fx-background-insets: 0;
    -fx-shape: null;
    -fx-padding: 0;
}

/* Need some padding since otherwise no scroll-bar is displayed at all */
.scroll-bar:horizontal > .decrement-button > .decrement-arrow {
    -fx-padding: 0.333em 0.167em 0.333em 0.167em; /* 4 2 4 2 */
}

.scroll-bar:vertical > .decrement-button > .decrement-arrow {
    -fx-padding: 0em 0.333em 0em 0.333em; /* 2 4 2 4 */
}

/* Restore full visibility of scrollbars for active elements */
.list-view:hover .scroll-bar,
.tree-view:hover .scroll-bar,
.table-view:hover .scroll-bar,
.tree-table-view:hover .scroll-bar,
.text-input:hover .scroll-bar,
.scroll-pane:hover .scroll-bar {
    -fx-opacity: 1;
}

.sidePaneComponentHeader {
    -fx-background-color: -jr-sidepane-header-background;
    -fx-padding: 0.3em 0.9em 0.3em 0.9em;
    -fx-pref-height: -jr-header-height;
}

.sidePaneComponentHeader > .label {
    -fx-text-fill: -jr-sidepane-header-color;
    -fx-font-weight: bold;
    -fx-padding: 0.3em 0.9em 0.3em 0.9em;
}

.sidePaneComponentHeader .glyph-icon,
.sidePaneComponentHeader .ikonli-font-icon {
    -fx-fill: -jr-sidepane-header-color;
    -fx-text-fill: -jr-sidepane-header-color;
    -fx-font-size: 1.0em;
    -fx-icon-color: -jr-theme-text;
}

.mainMenu {
    -fx-background-color: -jr-menu-background;
    -fx-background-insets: 0;
}

.menu-bar > .container {
    -fx-border-width: 0;
}

.menu-bar > .container > .menu-button:hover,
.menu-bar > .container > .menu-button:focused,
.menu-bar > .container > .menu-button:showing {
    -fx-background-color: -jr-menu-background-active;
    -fx-background: -jr-menu-background-active;
}

.menu-bar > .container > .menu-button:hover > .label,
.menu-bar > .container > .menu-button:focused > .label,
.menu-bar > .container > .menu-button:showing > .label {
    -fx-text-fill: -jr-menu-forground-active;
}

.mainMenu > .container > .menu-button > .label {
    -fx-text-fill: -jr-menu-foreground;
}

.menu-item > .label {
    -fx-text-fill: -jr-menu-item-foreground;
}

.menu-item:focused {
    -fx-text-fill: -jr-menu-background-active;
    -fx-background: -jr-menu-background-active;
    -fx-background-color: -jr-menu-background-active;
}

.menu-item:focused > .label {
    -fx-text-fill: -jr-menu-forground-active;
}

.menu-item .glyph-icon {
    -fx-fill: -jr-menu-item-foreground;
    -fx-text-fill: -jr-menu-item-foreground;
}

.menu-item:focused .glyph-icon {
    -fx-fill: -jr-menu-forground-active;
    -fx-text-fill: -jr-menu-forground-active;
}

.context-menu {
    -fx-border-color: -fx-outer-border;
    -fx-border-width: 1;
}

.separator:horizontal .line {
    -fx-border-color: -jr-separator;
    -fx-border-width: 0.3;
    -fx-border-insets: 1 15 0 20;
}

.separator:vertical .line {
    -fx-border-color: -jr-separator;
    -fx-border-width: 1;
    -fx-border-insets: 5 15 5 15;
}

.mainToolbar {
    -fx-background-color: -jr-toolbar;
    -fx-border-color: derive(-jr-toolbar, 50%);
    -fx-border-width: 0;
}

.mainToolbar .icon-button {
    -fx-padding: 0.5em;
}

/*
 * -fx-icon-size is intentionally omitted to prevent a rendering loop. The library sets font size
 * based on the computed icon size, which is itself relative to the font size.
 */
.mainToolbar .glyph-icon,
.mainToolbar .ikonli-font-icon {
    /* `!important` is override library's default font size */
    -fx-font-size: 1.7em!important;
    -fx-fill: -jr-theme-text;
    -fx-text-fill: -jr-theme-text;
    -fx-icon-color: -jr-theme-text;
}

.mainToolbar .progress-indicator {
    -fx-min-width: 2.8em;
    -fx-max-width: 2.8em;
}

.search-field {
    -fx-background-color: -jr-search-background;
    -fx-border-width: 1;
    -fx-border-color: -jr-separator;
    -fx-border-radius: 2;
    -fx-fill: -jr-search-text;
}

.search-field .button .glyph-icon {
    -fx-fill: -jr-search-text;
    -fx-text-fill: -jr-search-text;
    -fx-icon-color: -jr-search-text;
}

/*
 * The magnifying glass icon left of the search text field.
 * Currently, hits "Web search" and "Groups" only (not the searchbar on the top).
*/
.search-field-icon {
    -fx-icon-color: -jr-search-text;
    -fx-font-size: 1.7em;
}

/* search modifier buttons */
.global-search-bar .toggle-button:selected {
    -fx-background-color: transparent;
}

.global-search-bar .toggle-button:hover,
.global-search-bar .toggle-button:selected:hover {
    -fx-background-color: -jr-icon-background-active;
}

.global-search-bar .toggle-button .glyph-icon {
    -fx-icon-color: derive(-jr-search-text, 80%);
}

.global-search-bar .toggle-button:selected .glyph-icon {
    -fx-icon-color: -jr-search-text;
}

/* search text */
.global-search-bar .label {
    -fx-padding: 0em 1.8em 0em 0em;
}

.global-search-bar:illegal-search {
    -fx-background-color: derive(-jr-light-red, 70%);
}

/* The little arrow that shows up when not all tool-bar icons fit into the tool-bar.
We want to have a look that matches our icons in the tool-bar */
.mainToolbar .tool-bar-overflow-button > .arrow {
    -fx-background-color: -jr-theme-text;
}

.mainToolbar .tool-bar-overflow-button:hover > .arrow {
    -fx-background-color: -fx-mark-highlight-color, derive(-jr-theme-text, -30%);
}

.table-view,
.tree-table-view {
    -fx-border-width: 0;
    -fx-padding: 0;
    -fx-border-insets: 0;
    -fx-table-cell-border-color: transparent;
}

.column-header-background {
    -fx-background-color: -fx-control-inner-background;
    -fx-border-width: 0;
}

.column-header-background:hover {
    -fx-background-color: -fx-outer-border;
}

.column-header,
.table-view .filler,
.tree-table-view .filler {
    -fx-background-color: transparent, -fx-control-inner-background;
    -fx-background-insets: 0, 0 0.02em 0 0.02em;
    -fx-font-weight: bold;
    -fx-size: 3em;
    -fx-border-width: 0 0 1 0;
    -fx-border-color: -fx-outer-border;
}

.column-header > .label {
    -fx-padding: 0 1em 0 1em;
    -fx-alignment: center-left;
    -fx-text-fill: -jr-head-fg;
}

.column-header .glyph-icon {
    -fx-alignment: baseline-center;
    -fx-text-fill: -jr-head-fg;
    -fx-fill: -jr-head-fg;
}

.table-cell,
.tree-table-cell,
.tree-table-cell .glyph-icon {
    -fx-cell-size: 4.0em;
    -fx-padding: 0.5em 1em 0.5em 1em;
    -fx-fill: -fx-text-background-color;
    -fx-text-fill: -fx-text-background-color;
}

/* Drag and drop colored indicator */

.table-row-cell:dragOver-bottom {
    -fx-border-color: -jr-drag-target;
    -fx-border-width: 0 0 2 0;
    -fx-padding: 0 0 -2 0;
}

.table-row-cell:dragOver-center > .table-cell {
    -fx-background-color: -jr-drag-target-hover;
}

.table-row-cell:dragOver-top {
    -fx-border-color: -jr-drag-target;
    -fx-border-width: 2 0 0 0;
    -fx-padding: -2 0 0 0;
}

/* Improve the context menu of the main toolbar, when icons don't fit and you have to press the little arrow to see them */
.mainToolbar .context-menu .glyph-icon {
    -fx-fill: -jr-theme-text;
}

.mainToolbar .context-menu .glyph-icon:hover {
    -fx-fill: -jr-menu-forground-active;
    -fx-text-fill: -jr-menu-forground-active;
    -fx-background-color: -jr-icon-background-active; /* TODO: This has no effect */
}

/* This is awful, but I don't know a better way*/
.mainToolbar .context-menu * {
    -fx-background-color: -fx-control-inner-background;
}

#sidePane {
    -fx-background-color: -jr-sidepane-background;
}

.sidePaneComponent {
    -fx-background-color: -jr-sidepane-background;
}

.notification-bar > .pane {
    -fx-background-color: -jr-gray-3;
    -fx-background-radius: 0.25em;
}

.notification-bar > .pane > .title,
.notification-bar > .pane > .label,
.notification-bar > .pane > .button-bar > .container > .action {
    -fx-text-fill: -jr-base;
    -fx-padding: 1ex 1ex 1ex 1ex;
}

.notification-bar > .pane {
    -fx-effect: dropshadow(three-pass-box, rgba(0, 0, 0, 0.3), 9, 0, 0, 2);
    -fx-padding: 0.375em 0.438em 0.375em 2.0em;
    -fx-background-radius: 0;
    -fx-border-radius: 0;
}

.notification-bar > .pane > .button-bar > .container {
    -fx-padding: 0.0em 1.5em 0.0em 0.0em;
}

.notification-bar > .pane > .label {
    -fx-graphic-text-gap: 0.5em;
}

.notification-pane .notification-bar > .pane .close-button > .graphic {
    -fx-background-color: -jr-base;
}

.notification-bar > .pane > .label > .ikonli-font-icon {
    -fx-icon-size: 1.0em;
    -fx-icon-color: -jr-base;
}

.progress-bar > .bar {
    -fx-background-color: -jr-theme;
}

.progress-bar:indeterminate > .bar {
    -fx-background-color: -jr-theme;
}

.progress-bar > .track {
    -fx-background-color: -jr-accent;
}

.color-picker:armed,
.color-picker:hover,
.color-picker:focused,
.color-picker {
    -fx-background-color: transparent, transparent, transparent, transparent;
    -fx-background-radius: 0;
    -fx-background-insets: 0;
    -fx-effect: null;
}

.color-palette {
    -fx-background-color: -fx-background;
    -fx-background-radius: 0;
    -fx-background-insets: 0;
}

.color-palette-region .button {
    -fx-border-width: 0;
}

.bibEntry {

}

.bibEntry .type {
    -fx-font-size: 110%;
}

.bibEntry .title {
    -fx-font-size: 110%;
    -fx-font-weight: bold;
}

.bibEntry .year {
    -fx-font-size: 101%;
    -fx-font-weight: bold;
}

.bibEntry .journal {
    -fx-font-size: 101%;
}

.bibEntry .authors {
    -fx-font-size: 101%;
}

.bibEntry .summary {
    -fx-padding: 1ex 0ex 0ex 0ex;
}

.warning-icon {
    -fx-fill: -jr-warn;
}

.warning-message {
    -fx-fill: -jr-warn;
    -fx-text-fill: -jr-warn;
}

.error-message {
    -fx-fill: -jr-error;
    -fx-text-fill: -jr-error;
}

.error-icon {
    -fx-text-fill: -jr-error;
    -fx-fill: -jr-error;
}

.tooltip-warning {
    -fx-background-color: -jr-warn;
}

.tooltip-error {
    -fx-background-color: -jr-error;
}

.titleHeader {
    -fx-font-size: 150%;
    -fx-padding: 0em 0em 0.5em 0em;
}

.sectionHeader {
    -fx-font-size: 130%;
    -fx-padding: 1em 0em 0.2em 0em;
}

.dialog-pane {
    -fx-font-size: 1em;
    -fx-background-color: -fx-control-inner-background;
}

.innerGridPane {
    -fx-hgap: 1em;
    -fx-vgap: 1em;
}

.prefIndent {
    -fx-padding: 0 0 0 1.667em;
}

.code-area .text {
    -fx-fill: -fx-text-background-color;
}

#bibtexcodearea {
    -fx-padding: 4 4 4 4;
    -fx-background-color: -fx-control-inner-background;
}

.code-area .selection {
    -fx-fill: -jr-accent;
}

.code-area .caret {
    -fx-stroke: -fx-text-background-color;
}

.code-area .context-menu {
    -fx-font-family: sans-serif;
}

.citationsList {
    -fx-text-fill: -fx-text-base-color;
}

.citationsList .contextBox {
    -fx-border-color: -fx-outer-border;
    -fx-border-insets: 5;
    -fx-border-style: dashed;
    -fx-border-width: 2;
    -fx-padding: 12;
}

.citationsList .contextBox * {
    -fx-fill: -fx-text-base-color;
}

.citationsList .label {
    -fx-font-family: monospace;
    -fx-font-weight: bold;
    -fx-label-padding: 5 0 10 10;
}

.tags-field {
    -fx-pref-height: 1.875em;
    -fx-margin: 0;
    -fx-border-style: none;
    -fx-background-color: -fx-outer-border, -fx-control-inner-background;
}

.tags-field:focused {
    -fx-border-color: -jr-accent;
}

.tags-field > .flow-pane > .tag-view {
    -fx-background-color: -fx-default-button;
    -fx-text-fill: -fx-focused-text-base-color;
}

.tags-field > .flow-pane > .tag-view:selected {
    -fx-background-color: derive(-fx-default-button, -20%);
    -fx-text-fill: -fx-focused-text-base-color;
}

.tags-field-editor {
    -fx-border-width: 0;
    -fx-text-fill: -fx-focused-text-base-color;
    -fx-highlight-text-fill: -fx-text-inner-color;
    -fx-highlight-fill: derive(-jr-accent, 20%);
}

.searchBar:invalid {
    -fx-background-color: rgba(240, 128, 128, 0.5);
}

.searchBar:unsupported {
    -fx-background-color: rgba(255, 159, 67, 0.5);

}

.mainTable-header {
    -fx-fill: -fx-mid-text-color;
}

.fontsizeSpinner {
    -fx-pref-width: 5em;
}

.text-field:invalid {
    -fx-background-color: rgba(240, 128, 128, 0.5);
}

.rating {
    -fx-skin: "org.jabref.gui.util.CustomRatingSkin";
    -fx-padding: 0.5em 0.0em 0.0em 0.0em;
}

.rating > .container > .button {
    -fx-icon-color: derive(-fx-text-base-color, 85%);
}

.rating > .container > .button.strong {
    -fx-icon-color: -fx-text-base-color;
}

.table-column .rotated > .label {
    -fx-content-display: graphic-only;
}

.customGenerateButton {
    -fx-padding: 0.5em 2em;
    -fx-min-width: 10em;
}

.chat-message-text-area {
    -fx-border-radius: 10;
    -fx-background-radius: 10;
}

.chat-message-text-area .scroll-pane {
    -fx-background-color: transparent;
}

.chat-message-text-area .scroll-pane .viewport {
    -fx-background-color: transparent;
}

.chat-message-text-area .scroll-pane .content {
    -fx-background-color: transparent;
}

/* MainTable */

.main-table .column-icon {
    -fx-alignment: baseline-center;
    -fx-padding: 0;
}

.main-table .column-header.column-icon > .label {
    -fx-padding: 0;
    -fx-alignment: baseline-center;
}

.main-table .empty-special-field {
    visibility: hidden;
}

.main-table .table-row-cell:hover .empty-special-field {
    visibility: visible;
    -fx-icon-color: -jr-gray-2;
    -fx-fill: -jr-gray-2;
}

.main-table .table-row-cell:dragOver-bottom {
    -fx-border-color: -jr-drag-target;
    -fx-border-width: 0 0 2 0;
    -fx-padding: 0 0 -2 0;
}

.main-table .table-row-cell:dragOver-center {
    -fx-border-color: -jr-drag-target;
    -fx-border-width: 1 1 1 1;
    -fx-padding: -1 -1 -1 -1;
    -fx-background-color: -jr-drag-target-hover;
}

.main-table .table-row-cell:dragOver-top {
    -fx-border-color: -jr-drag-target;
    -fx-border-width: 2 0 0 0;
    -fx-padding: -2 0 0 0;
}

/** even and odd are swapped around somehow. Below "odd" matches lines 2, 4, ... **/

.main-table .table-row-cell:matching-search-and-groups {
    -fx-background-color: -jr-match-1-even;
}
.main-table .table-row-cell:matching-search-and-groups > .table-cell {
    -fx-text-fill: -jr-match-1-text-color;
}
.main-table .table-row-cell:matching-search-and-groups:focused > .table-cell {
    -fx-text-fill: -fx-focused-text-base-color;
}
.main-table .table-row-cell:matching-search-and-groups:focused:hover > .table-cell {
    -fx-text-fill: -jr-maintable-focused-hover-text;
}
.main-table .table-row-cell:matching-search-and-groups:focused:hover > .table-cell > .ikonli-font-icon {
    -fx-icon-color: -jr-maintable-focused-hover-text;
}
.main-table .table-row-cell:matching-search-and-groups:hover > .table-cell {
    -fx-text-fill: -jr-hover-text;
}
.main-table .table-row-cell:matching-search-and-groups > .table-cell > .ikonli-font-icon {
    -fx-icon-color: -jr-match-1-text-color;
}
.main-table .table-row-cell:matching-search-and-groups:hover > .table-cell > .ikonli-font-icon {
    -fx-icon-color: -jr-hover-text;
}
.main-table .table-row-cell:matching-search-and-groups:odd {
    -fx-background-color: -jr-match-1-odd;
}
.main-table .table-row-cell:matching-search-and-groups:selected,
.main-table .table-row-cell:matching-search-and-groups:focused,
.main-table .table-row-cell:matching-search-and-groups:focused:hover {
    -fx-background-color: -jr-selected;
}
.main-table .table-row-cell:matching-search-and-groups:hover {
    -fx-background-color: -jr-hover;
}

.main-table .table-row-cell:matching-search-not-groups {
    -fx-background-color: -jr-match-2-even;
}
.main-table .table-row-cell:matching-search-not-groups > .table-cell {
    -fx-text-fill: -jr-match-2-text-color;
}
.main-table .table-row-cell:matching-search-not-groups:focused > .table-cell {
    -fx-text-fill: -fx-focused-text-base-color;
}
.main-table .table-row-cell:matching-search-not-groups:focused:hover > .table-cell {
    -fx-text-fill: -jr-maintable-focused-hover-text;
}
.main-table .table-row-cell:matching-search-not-groups:focused:hover > .table-cell > .ikonli-font-icon {
    -fx-icon-color: -jr-maintable-focused-hover-text;
}
.main-table .table-row-cell:matching-search-not-groups:hover > .table-cell {
    -fx-text-fill: -jr-hover-text;
}
.main-table .table-row-cell:matching-search-not-groups > .table-cell > .ikonli-font-icon {
    -fx-icon-color: -jr-match-2-text-color;
}
.main-table .table-row-cell:matching-search-not-groups:hover > .table-cell > .ikonli-font-icon {
    -fx-icon-color: -jr-hover-text;
}
.main-table .table-row-cell:matching-search-not-groups:odd {
    -fx-background-color: -jr-match-2-odd;
}
.main-table .table-row-cell:matching-search-not-groups:selected,
.main-table .table-row-cell:matching-search-not-groups:focused,
.main-table .table-row-cell:matching-search-not-groups:focused:hover,
.main-table .table-row-cell:matching-search-not-groups:hover {
    -fx-background-color: -jr-selected;
}
.main-table .table-row-cell:matching-search-not-groups:hover {
    -fx-background-color: -jr-hover;
}

.main-table .table-row-cell:matching-groups-not-search {
    -fx-background-color: -jr-match-3-even;
}
.main-table .table-row-cell:matching-groups-not-search > .table-cell {
    -fx-text-fill: -jr-match-3-text-color;
}
.main-table .table-row-cell:matching-groups-not-search:focused > .table-cell {
    -fx-text-fill: -fx-focused-text-base-color;
}
.main-table .table-row-cell:matching-groups-not-search:focused:hover > .table-cell {
    -fx-text-fill: -jr-maintable-focused-hover-text;
}
.main-table .table-row-cell:matching-groups-not-search:focused:hover > .table-cell > .ikonli-font-icon {
    -fx-icon-color: -jr-maintable-focused-hover-text;
}
.main-table .table-row-cell:matching-groups-not-search:hover > .table-cell {
    -fx-text-fill: -jr-hover-text;
}
.main-table .table-row-cell:matching-groups-not-search > .table-cell > .ikonli-font-icon {
    -fx-icon-color: -jr-match-3-text-color;
}
.main-table .table-row-cell:matching-groups-not-search:hover > .table-cell > .ikonli-font-icon {
    -fx-icon-color: -jr-hover-text;
}
.main-table .table-row-cell:matching-groups-not-search:odd {
    -fx-background-color: -jr-match-3-odd;
}
.main-table .table-row-cell:matching-groups-not-search:selected,
.main-table .table-row-cell:matching-groups-not-search:focused,
.main-table .table-row-cell:matching-groups-not-search:focused:hover,
.main-table .table-row-cell:matching-groups-not-search:hover {
    -fx-background-color: -jr-selected;
}
.main-table .table-row-cell:matching-groups-not-search:hover {
    -fx-background-color: -jr-hover;
}

.main-table .table-row-cell:not-matching-search-and-groups {
    -fx-background-color: -jr-match-4-even;
}
.main-table .table-row-cell:not-matching-search-and-groups > .table-cell {
    -fx-text-fill: -jr-match-4-text-color;
}
.main-table .table-row-cell:not-matching-search-and-groups:focused > .table-cell {
    -fx-text-fill: -fx-focused-text-base-color;
}
.main-table .table-row-cell:not-matching-search-and-groups:focused:hover > .table-cell {
    -fx-text-fill: -jr-maintable-focused-hover-text;
}
.main-table .table-row-cell:not-matching-search-and-groups:focused:hover > .table-cell > .ikonli-font-icon {
    -fx-icon-color: -jr-maintable-focused-hover-text;
}
.main-table .table-row-cell:not-matching-search-and-groups:hover > .table-cell {
    -fx-text-fill: -jr-hover-text;
}
.main-table .table-row-cell:not-matching-search-and-groups > .table-cell > .ikonli-font-icon {
    -fx-icon-color: -jr-match-4-text-color;
}
.main-table.table-row-cell:not-matching-search-and-groups:hover > .table-cell > .ikonli-font-icon {
    -fx-icon-color: -jr-hover-text;
}
.main-table .table-row-cell:not-matching-search-and-groups:odd {
    -fx-background-color: -jr-match-4-odd;
}
.main-table .table-row-cell:not-matching-search-and-groups:selected,
.main-table .table-row-cell:not-matching-search-and-groups:focused,
.main-table .table-row-cell:not-matching-search-and-groups:focused:hover {
    -fx-background-color: -jr-selected;
}
.main-table .table-row-cell:not-matching-search-and-groups:hover {
    -fx-background-color: -jr-hover;
}

.rating > .container {
    -fx-spacing: 2;
}

.rating > .container > .button {
    -fx-pref-width: 16;
    -fx-pref-height: 10;
    -fx-background-repeat: no-repeat no-repeat;
    -fx-background-size: 16 16;
    -fx-border-style: none;
    -fx-border-width: 0;
    -fx-padding: 0;
}

.rating > .container > .button.strong {

}

.rating > .container > .button:hover {
    -fx-effect: dropshadow(three-pass-box, rgba(0, 0, 0, 0.6), 8, 0.0, 0, 0);
}

.welcome-label {
    -fx-font-size: 2.75em;
    -fx-text-fill: -jr-theme-text;
    -fx-font-family: "Arial";
}

.welcome-description-label {
    -fx-font-size: 1.75em;
    -fx-font-family: "Arial";
}

.welcome-header-label {
    -fx-font-size: 1.5em;
    -fx-font-weight: bold;
    -fx-font-family: "Arial";
    -fx-text-fill: -jr-head-fg;
}

.welcome-no-recent-label {
    -fx-font-size: 1.25em;
    -fx-text-fill: -jr-theme;
    -fx-font-family: "Arial";
}

.welcome-hyperlink {
    -fx-font-size: 1.25em;
    -fx-text-fill: -jr-theme;
}

.welcome-hyperlink:visited {
    -fx-text-fill: -jr-theme;
}


/* Welcome Tab Layout Styles */
.welcome-main-container {
    -fx-max-width: 64em;
    -fx-spacing: 2.333em;
    -fx-alignment: center;
    -fx-padding: 2.667em 2em;
}

.welcome-top-titles {
    -fx-spacing: 0.833em;
    -fx-alignment: top-left;
    -fx-padding: 0 0 1.667em 0;
}

.welcome-columns-container {
    -fx-hgap: 2.083em;
    -fx-vgap: 2.083em;
    -fx-alignment: top-center;
}

.welcome-left-column,
.welcome-right-column {
    -fx-min-width: 0;
    -fx-pref-width: 50%;
    -fx-max-width: 50em;
}

.welcome-content-column {
    -fx-spacing: 2.083em;
    -fx-alignment: top-left;
}

.welcome-section {
    -fx-spacing: 1em;
    -fx-alignment: top-left;
}

.welcome-links-content {
    -fx-spacing: 0.667em;
    -fx-alignment: top-left;
}


/* Welcome Community  */
.welcome-community-content {
    -fx-spacing: 1em;
    -fx-alignment: top-left;
}

.welcome-community-icons {
    -fx-hgap: 1em;
    -fx-vgap: 0.667em;
    -fx-alignment: center-left;
}

.welcome-community-links {
    -fx-spacing: 1.25em;
    -fx-alignment: center-left;
}

.welcome-community-link {
    -fx-font-size: 1.0em;
    -fx-text-fill: -jr-theme;
    -fx-font-family: "Arial";
}

.welcome-community-link:hover {
    -fx-underline: true;
    -fx-text-fill: derive(-jr-theme, -20%);
}

.welcome-community-version {
    -fx-alignment: center-left;
    -fx-padding: 0.417em 0 0 0;
}

.welcome-community-version-text {
    -fx-font-size: 0.9em;
    -fx-text-fill: -jr-gray-2;
    -fx-font-family: "Arial";
}

/* donation toast */
.donation-toast {
    -fx-background-color: -jr-background-alt;
    -fx-background-radius: 0.8333333333em;
    -fx-padding: 0.8333em 1em;
    -fx-effect: dropshadow(gaussian, rgba(0, 0, 0, 0.075), 20, 0.25, 0, 6);
    -fx-alignment: center-left;
    -fx-border-color: derive(-jr-base, -10%);
    -fx-border-radius: 0.8333333333em;
    -fx-max-height: 4em;
    -fx-spacing: 1.16667em;
}

.donation-toast .label {
    -fx-text-fill: -fx-text-base-color;
}

.donation-toast-title {
    -fx-font-size: 1.0em;
    -fx-font-weight: bold;
}

.donation-toast-desc {
    -fx-font-size: 0.92em;
}

.donation-toast-text {
    -fx-spacing: 2;
}

.donation-btn-primary,
.donation-btn-secondary,
.donation-btn-ghost {
    -fx-padding: 0.5em 1em;
    -fx-background-radius: 0.5em;
    -fx-border-radius: 0.5em;
}

.donation-btn-primary {
    -fx-background-color: -jr-primary;
}

.donation-btn-secondary {
    -fx-background-color: derive(-fx-control-inner-background, -6%);
}

.donation-btn-ghost {
    -fx-background-color: transparent;
    -fx-text-fill: -jr-gray-1;
    -fx-stroke-width: 0;
    -fx-border-width: 0
}

.donation-btn-ghost:hover {
    -fx-background-color: transparent;
    -fx-text-fill: -jr-gray-2;
}

/* AboutDialog */
#aboutDialog .about-heading {
    -fx-font-size: 2.40em;
    -fx-text-fill: -jr-theme;
}

#aboutDialog .about-heading:pressed {
    -fx-text-fill: -jr-selected;
}

#aboutDialog .top-padding {
    -fx-padding: 5 0 0 0;
}

#aboutDialog .dev-heading {
    -fx-font-size: 1.44em;
    -fx-padding: -10 0 0 0;
}

#aboutDialog .sub-heading {
    -fx-font-size: 1.44em;
    -fx-padding: 0.312em;
}

#aboutDialog .about-top {
    -fx-padding: 0 5 15 5;
}

#aboutDialog .space {
    -fx-padding: 0 5 0 5;
}

#aboutDialog .space-after {
    -fx-padding: 0 5 0 0;
}

#aboutDialog .info-sections {
    -fx-padding: 0.312em;
}

#aboutDialog .contrib-section {
    -fx-padding: 5 5 10 5;
}

#aboutDialog .logo-pane {
    -fx-fill: transparent;
}

#aboutDialog .logo-pane SVGPath {
    -fx-fill: #4f5f8f;
}

/* DocumentViewer */
#documentViewerDialog #mainPane {
    -fx-background-color: -fx-accented-background;
    -fx-padding: 0;
}

#documentViewerDialog .document-viewer .page {
    -fx-padding: 0em 0em 1em 0em;
    -fx-background-insets: 0;
}

/* EntryEditor */
#entryEditor .editorPane {
    -fx-hgap: 10;
    -fx-vgap: 6;
    -fx-background-color: -fx-control-inner-background;
    -fx-padding: 5 5 5 15;
}

#entryEditor Text {
    -fx-text-fill: -fx-text-base-color;
    -fx-fill: -fx-text-base-color;
}

#entryEditor .date-picker > .date-picker-display-node {
    -fx-text-origin: baseline;
}

#entryEditor .date-picker > .date-picker-display-node *.text {
    -fx-text-origin: bottom;
}

#entryEditor .combo-box > *.text {
    -fx-text-origin: baseline;
}

#entryEditor #typeLabel {
    -fx-padding: 0.1em;
    -fx-font-size: 1.166667em;
    -fx-font-weight: bold;
    -fx-text-fill: -jr-theme-text;
}

#entryEditor #typeLabel:hover {
    -fx-padding: 0.1em;
    -fx-font-size: 1.166667em;
    -fx-font-weight: bold;
    -fx-background-color: -jr-icon-background-active;
}

#entryEditor #typeLabel .context-menu {
    -fx-font-size: 0.92em;
    -fx-font-weight: normal;
}

#entryEditor #typeLabel .tooltip {
    -fx-font-size: 1em;
    -fx-font-weight: normal;
}

#entryEditor .icon-button.narrow {
    -fx-padding: 0.1em;
}

#entryEditor .icon-buttonNoSpaceBottom.narrow {
    -fx-padding: 0.1em 0.1em -0.2em 0.1em;
}

#entryEditor .icon-buttonNoSpaceTop.narrow {
    -fx-padding: -0.2em 0.1em 0.1em 0.1em;
}

#entryEditor .tool-bar {
    -fx-background-color: -jr-background-alt;
    -fx-background-insets: 0;
}

#entryEditor .tool-bar .glyph-icon {
    -glyph-size: 1.0em;
    -fx-font-size: 2em;
    -fx-fill: -jr-theme-text;
    -fx-text-fill: -jr-theme-text;
}

#entryEditor .warning-icon {
    -fx-fill: -jr-warn;
}

#entryEditor .error-icon {
    -fx-text-fill: -jr-error;
    -fx-fill: -jr-error;
}

#entryEditor .tooltip-warning {
    -fx-background-color: -jr-warn;
}

#entryEditor .tooltip-error {
    -fx-background-color: -jr-error;
}

#entryEditor .code-area .context-menu {
    -fx-font-family: sans-serif;
}

#entryEditor #related-articles-tab {
    -fx-padding: 20 20 20 20;
    -fx-background-color: -fx-control-inner-background;
}

#entryEditor .ai-tab {
    -fx-padding: 20 20 20 20;
    -fx-background-color: -fx-control-inner-background;
}

#entryEditor .gdpr-notice {
    -fx-border-color: -jr-warn;
    -fx-border-insets: 5;
    -fx-border-style: dashed;
    -fx-border-width: 2;
    -fx-padding: 12;
    -fx-font-size: 1.3em;
}

#entryEditor .recommendation-item {
    -fx-padding: 0 0 0 20;
}

#entryEditor #bibtexSourceCodeArea {
    -fx-padding: 4 4 4 4;
    -fx-background-color: -fx-control-inner-background;
}

#entryEditor #bibtexSourceCodeArea .search {
    -rtfx-background-color: #ffff00;
    -fx-fill: #7800A9;
    -fx-font-size: 1.2em;
    -fx-font-weight: bolder;
}

#entryEditor #citationsPane {
    -fx-padding: 0;
    -fx-background-color: -fx-control-inner-background;
}

#entryEditor #citationsPane *,
#entryEditor #scitePane Label,
#entryEditor #scitePane Text {
    -fx-fill: -fx-text-background-color;
}

#entryEditor .heading {
    -fx-font-size: 1.5em;
    -fx-font-weight: bold;
}

#entryEditor .description {
    -fx-font-style: italic;
}

#entryEditor .scite-tallies-label {
    -fx-font-size: 1.5em;
    -fx-font-weight: bold;
}

#entryEditor .scite-error-box {
    -fx-padding: 30 0 0 30;
}

#entryEditor .scite-message-box {
    -fx-padding: 30 0 0 30;
}

#entryEditor #scite-error-label {
    -fx-font-size: 1.5em;
    -fx-font-weight: bold;
    -fx-text-fill: -jr-error;
}

/* ErrorConsole */
#errorConsole .list-content {
    -fx-padding: 0em;
}

#errorConsole .info-section {
    -fx-graphic-text-gap: 0.8em;
    -fx-font-size: 1.1em;
    -fx-line-spacing: 0.2em;
    -fx-padding: 0.6em 1em;
    -fx-background-color: -jr-transparent-accent;
}

#errorConsole .button-bar {
    -fx-padding: 1em 0em 0em 0em;
}

#errorConsole .error-console-cell {
    -fx-padding: 0.6em 1em;
}

#errorConsole .error-console-cell HBox {
    -fx-spacing: 0.8em;
}

#errorConsole .message-box {
    -fx-spacing: 0.5em;
}

#errorConsole .info-section .glyph-icon,
#errorConsole .exception .glyph-icon,
#errorConsole .output .glyph-icon,
#errorConsole .log .glyph-icon
{
    -fx-font-size: 1.5em;
}

#errorConsole .exception .glyph-icon {
    -fx-icon-color: -jr-error;
}

#errorConsole .output .glyph-icon {
    -fx-icon-color: -jr-warn;
}

#errorConsole .log .glyph-icon {
    -fx-icon-color: -jr-info;
}

/* Poor readability on -jr-accent. See: https://webaim.org/resources/contrastchecker/?fcolor=9E4C00&bcolor=A3B7E6 */
#errorConsole .error-console-cell:selected .exception .glyph-icon {
    -fx-icon-color: derive(-jr-error, -50%);
}

#errorConsole .error-console-cell:selected .output .glyph-icon {
    -fx-icon-color: derive(-jr-warn, -50%);
}

#errorConsole .error-console-cell:selected .log .glyph-icon {
    -fx-icon-color: derive(-jr-info, -50%);
}

#errorConsole .exception,
#errorConsole .output,
#errorConsole .log {
    -fx-text-fill: -fx-text-base-color;
}

/* GroupTree */

#groupTree:focused,
#groupTree:filled:selected {
    -fx-background-color: -jr-sidepane-background;
    -fx-table-cell-border-color: transparent;
}

#groupTree, .tree-table-row-cell {
    -fx-background-color: -jr-sidepane-background;
}

#groupTree .tree-table-cell {
    -fx-padding: 0.35em 0em 0.25em 0em;
}

#groupTree .numberColumn {
    -fx-alignment: top-right;
    -fx-padding: 0.35em 0.2em 0.25em 0em;
}

#groupTree .numberColumn > .hits {
    -fx-font-size: 0.75em;
    -fx-background-color: -jr-group-hits-bg;
    -fx-padding: 0.4em 0.4em 0.4em 0.4em;
    -fx-background-insets: 0;
    -fx-background-radius: 0.7em;
}

#groupTree .numberColumn > .hits .text {
    -fx-fill: -jr-group-hits-fg;
}

#groupTree .numberColumn > .hits:any-selected {
    -fx-background-color: derive(-jr-green, 70%);
}

#groupTree .numberColumn > .hits:all-selected {
    -fx-background-color: -jr-green;
}

#groupTree .expansionNodeColumn {
    -fx-alignment: top-right;
}

#groupTree .tree-table-row-cell:dragOver-bottom {
    -fx-border-color: -jr-drag-target;
    -fx-border-width: 0 0 2 0;
    -fx-padding: 0 0 -2 0;
}

#groupTree .tree-table-row-cell:dragOver-center {
    -fx-border-color: -jr-drag-target;
    -fx-border-width: 1 1 1 1;
    -fx-padding: -1 -1 -1 -1;
    -fx-background-color: -jr-drag-target-hover;
}

#groupTree .tree-table-row-cell:dragOver-top {
    -fx-border-color: -jr-drag-target;
    -fx-border-width: 2 0 0 0;
    -fx-padding: -2 0 0 0;
}

#groupTree .tree-table-row-cell:sub > .tree-table-cell {
    -fx-padding: 0.20em 0em 0.20em 0em;
}

#groupTree .tree-table-row-cell:sub > .numberColumn {
    -fx-padding: 0.20em 0.2em 0.20em 0em;
}

#groupTree .tree-table-row-cell:root {
    -fx-border-width: 0 0 1 0;
    -fx-border-color: -jr-separator;
}

#groupTree .tree-table-row-cell:root > .tree-table-cell {
    -fx-padding: 0.65em 0em 0.65em 1em;
}

#groupTree .tree-table-row-cell:root > .numberColumn {
    -fx-padding: 0.40em 0.2em 0.40em 0em;
}

#groupTree .tree-table-row-cell:root > .expansionNodeColumn {
    -fx-padding: 0.45em 0.2em 0.45em 0.2em;
}

#groupTree .tree-table-row-cell:empty {
    -fx-background-color: transparent; /* hide cells which are not bound to a group */
}

#groupTree .column-header-background {
    visibility: hidden; /* hide column header */
    -fx-padding: -0.8em;
}

#groupTree .tree-table-row-cell > .tree-table-cell > .tree-disclosure-node > .arrow {
    -fx-background-color: -fx-mid-text-color;
    -fx-max-height: 0.5em;
    -fx-max-width: 0.5em;
    -fx-padding: 0.333333em 0.229em 0.333333em 0.229em; /* 4 */
    -fx-shape: "m64,416l96,96l256,-256l-256,-256l-96,96l160,160l-160,160z";
}

#groupTree .tree-table-row-cell:expanded > .tree-table-cell > .tree-disclosure-node > .arrow {
    -fx-rotate: 90;
}

#groupTree .tree-table-row-cell > .tree-table-cell > .icon {
    -fx-translate-x: -0.4em;
}

#groupFilterBar {
    -fx-background-color: -jr-search-background;
    -fx-border-color: -jr-separator;
    -fx-border-width: 1 0 0 0;
    -fx-padding: 0em 1em 0em 1em;
}

#groupFilterBar .glyph-icon {
    -fx-font-size: 2em;
}

#groupBar .glyph-icon {
    -fx-font-size: 2em;
}

/* ImportEntriesDialog */

#importEntriesDialog .addEntryButton {
    -fx-font-size: 2em;
}

#importEntriesDialog .addEntryButton:selected {
    -fx-background-color: transparent;
    -fx-fill: -jr-selected;
}

#importEntriesDialog .entry-container {
    -fx-padding: 0.5em 0em 0.5em 0em;
}

/* ManageStudyDefinition */

.slr-tab {
    -fx-padding: 1em;
}

/* MultiMergeEntries */

#multiMergeEntries .text-changed {
    -fx-fill: -jr-orange;
}

#multiMergeEntries .text-added {
    -fx-fill: -jr-green;
}

#multiMergeEntries .text-removed {
    -fx-fill: -jr-red;
}

#multiMergeEntries .grid-pane {
    -fx-hgap: 10;
    -fx-vgap: 10;
}

#multiMergeEntries .toggle-button {
    -fx-border-insets: 0;
    -fx-background-insets: 0;
    -fx-border-image-insets: 0;
    -fx-padding: 0.5em;
    -fx-background-radius: 0;
}

#multiMergeEntries .box {
    -fx-spacing: 10;
}

/* ParseLatexResult */

#referenceListView {
    -fx-background-color: -jr-sidepane-background;
}

#referenceListView > .virtual-flow > .clipped-container > .sheet > .list-cell {
    -fx-padding: 4 4 4 4;
    -fx-background: transparent;
    -fx-text-fill: -fx-text-base-color;
}

#referenceListView > .virtual-flow > .clipped-container > .sheet > .list-cell * {
    -fx-text-fill: -fx-text-base-color;
}

#parseLatexResultDialog > .split-pane > .split-pane-divider {
    -fx-padding: 0 4 0 4;
    -fx-background-color: transparent;
}

#parseLatexResultDialog .button-bar > .container {
    -fx-border-width: 1 0 0 0;
    -fx-border-color: -jr-sidepane-background;
}

/* PreferenceDialog */
#preferencesDialog #sidepane {
    -fx-background-color: -jr-sidepane-background;
}

#preferencesDialog #preferenceTabList {
    -fx-background-color: transparent;
}

#preferencesDialog #preferenceTabList > .virtual-flow > .clipped-container > .sheet > .list-cell {
    -fx-padding: 8 8 8 8;
    -fx-background: transparent;
    -fx-text-fill: -fx-text-base-color;
}

#preferencesDialog .button-bar > .container {
    -fx-border-width: 1 0 0 0;
    -fx-border-color: -jr-sidepane-background;
}

#preferencesDialog #preferenceTabList > .virtual-flow > .clipped-container > .sheet > .list-cell:filled:selected {
    -fx-background: -fx-control-inner-background;
}

#preferencesDialog > .split-pane > .split-pane-divider {
    -fx-padding: 0 4 0 4;
    -fx-background-color: transparent;
}

#preferencesDialog .preferencesTab {
    -fx-padding: 0.5em;
}

#preferencesDialog *:search-highlight {
    -fx-background-color: -jr-light-red;
}

#preferencesDialog .code-area {
    -fx-padding: 0;
    -fx-border-width: 1;
    -fx-background-color: transparent;
}

#preferencesDialog .code-area .text {
    -fx-fill: -fx-text-background-color;
}

#preferencesDialog .code-area .tagmark {
    -fx-fill: gray;
}

#preferencesDialog .code-area .anytag {
    -fx-fill: crimson;
}

#preferencesDialog .code-area .paren {
    -fx-fill: firebrick;
    -fx-font-weight: bold;
}

#preferencesDialog .code-area .attribute {
    -fx-fill: darkviolet;
}

#preferencesDialog .code-area .avalue {
    -fx-fill: green;
}

#preferencesDialog .code-area .comment {
    -fx-fill: teal;
}

#preferencesDialog .code-area .highlight-keyword {
    -fx-text-fill: -jr-purple;
}

#preferencesDialog .code-area .context-menu .menu-item .label {
    -fx-padding: 2;
}

/* WebSearchTab */
.fetcher-list-cell {
    -fx-padding: 0.3em 0.6em;
    -fx-alignment: center-left;
    -fx-spacing: 0.5em;
}

.fetcher-list-cell:nth-child(odd) {
    -fx-background-color: -jr-row-odd-background;
}

.fetcher-list-cell .label {
    -fx-font-size: 100%;
}

.fetcher-list-cell .configure-button {
    -fx-padding: 0.25em 0.5em;
    -fx-background-color: -fx-control-inner-background;
    -fx-text-fill: -fx-mid-text-color;
}

#testButton {
    -fx-padding: 0.25em 0.5em;
}

#testButton.success {
    -fx-text-fill: -jr-success;
}

#testButton.success .glyph-icon {
    -fx-icon-color: -jr-success;
}

#testButton.error {
    -fx-text-fill: -jr-error;
}

#testButton.error .glyph-icon {
    -fx-icon-color: -jr-error;
}

.api-key-dialog-content {
    -fx-padding: 1em;
}

/* CitationRelationsTab */

#citationRelationsTab .addEntryButton {
    -fx-font-size: 2em;
}

#citationRelationsTab .addEntryButton:selected {
    -fx-background-color: transparent;
    -fx-fill: -jr-selected;
}

#citationRelationsTab .entry-container {
    -fx-padding: 0.5em 0em 0.5em 0em;
}

/* JournalInfo */
.journalInfo {
    -fx-background-color: -jr-background-alt;
}

.journalInfo .info-heading {
    -fx-font-size: 2.5em;
    -fx-text-fill: -jr-theme;
}

.journalInfo .info-label {
    -fx-font-size: 1.25em;
    -fx-text-fill: -jr-theme;
}

.journalInfo .hIndex {
    -fx-font-size: 2em;
}

.journalInfo .grid-cell {
    -fx-border-color: transparent -fx-outer-border -fx-outer-border transparent;
    -fx-border-width: 0 0.062em 0.062em 0;
}

.journalInfo .grid-cell-r {
    -fx-border-color: transparent -fx-outer-border transparent transparent;
    -fx-border-width: 0 0.062em 0 0;
}

journalInfo .grid-cell-b {
    -fx-border-color: transparent transparent -fx-outer-border transparent;
    -fx-border-width: 0 0 0.062em 0;
}

/* KeyBindingsTab */

.keybinding-table {
    -fx-table-cell-border-color: transparent;
    -fx-background-color: transparent;
}

.keybinding-table .tree-table-row-cell {
    -fx-background-color: transparent;
    /* visibility: hidden; */
}

.keybinding-table .tree-table-row-cell:selected > .tree-table-cell > .icon,
.keybinding-table .tree-table-row-cell:pressed > .tree-table-cell > .icon {
    -fx-fill: white;
}

/* ThreeWayMergeView */
.three-way-merge .merged-field .styled-text-area {
    -fx-background-color: -fx-outer-border, -fx-control-inner-background;
    -fx-background-insets: 0, 1;
    -fx-prompt-text-fill: -fx-mid-text-color;
}

.three-way-merge .merged-field .styled-text-area:focused {
    -fx-highlight-fill: derive(-jr-accent, 20%);
    -fx-background-color: -jr-accent, -fx-control-inner-background;
    -fx-background-insets: 0, 2;
    -fx-highlight-text-fill: -fx-text-inner-color;
}

.three-way-merge .merge-field-value:selected .selection-box {
    -fx-background-color: -jr-accent-alt;
    -fx-border-color: -jr-accent;
}

.three-way-merge .merge-field-value .selection-box {
    -fx-background-color: #0000;
    -fx-border-color: #0000;
    -fx-border-radius: 8;
    -fx-background-radius: 8;
    -fx-border-width: 2.5;
}

.three-way-merge .styled-text-area .text {
    -fx-fill: -fx-text-background-color;
}

.three-way-merge .field-cell:odd {
    -fx-background-color: -jr-row-odd-background;
}

.three-way-merge .field-cell:even {
    -fx-background-color: -jr-row-even-background;
}

.three-way-merge .field-cell {
    -fx-padding: 8;
}

.three-way-merge .merge-toolbox {
    -fx-background-color: -jr-menu-background;
}

.three-way-merge .merge-header-cell .label {
    -fx-font-weight: bold;
    -fx-padding: 1, 0, 1, 0;
}

.three-way-merge .field-name .glyph-icon,
.three-way-merge .field-name .ikonli-font-icon {
    -fx-icon-size: 17;
    -fx-icon-color: -jr-theme-text;
}

/* Miscellaneous */

.chatHistory {
    -fx-border-color: black;
}

#styleSelectDialog .currentStyleLabel {
    -fx-font-size: 1em;
}

#styleSelectDialog .currentStyleNameLabel {
    -fx-font-size: 1em;
    -fx-font-weight: bold;
    -fx-text-fill: -jr-theme;
}

.exampleQuestionStyle {
    -fx-background-color: transparent;
    -fx-padding: 2px 10px;
    -fx-background-radius: 20px;
    -fx-border-radius: 20px;
    -fx-border-width: 0.062em;
    -fx-border-color: -fx-outer-border;
    -fx-font-weight: bold;
    -fx-underline: false !important;
    -fx-text-fill: -fx-text-base-color;
}

.exampleQuestionStyle:hover {
    -fx-background-color: rgba(0, 0, 0, 0.12);
}

.refresh {
    -fx-background-color: transparent;
}

.text-button-blue {
    -fx-background-color: transparent;
    -fx-text-fill: -jr-theme;
    -fx-font-size: 1.25em;
    -fx-border-color: transparent;
}

.add-certificate {
    -fx-pref-width: 17em;
    -fx-min-width: 17em;
}

/* Quick Settings */
.quick-settings-container,
.walkthroughs-container {
    -fx-spacing: 0.3333em;
    -fx-alignment: top-left;
}

.quick-settings-button {
    -fx-background-color: derive(-jr-base, 10%);
    -fx-border-color: -jr-gray-1;
    -fx-border-width: 0.08333em;
    -fx-border-radius: 0.333em;
    -fx-background-radius: 0.333em;
    -fx-padding: 0.833em 1.167em;
    -fx-alignment: center-left;
    -fx-graphic-text-gap: 0.667em;
    -fx-font-size: 1.0em;
    -fx-text-fill: -fx-text-base-color;
    -fx-cursor: hand;
}

.quick-settings-button:hover {
    -fx-background-color: -jr-hover;
    -fx-border-color: -jr-accent;
}

.quick-settings-button .glyph-icon,
.quick-settings-button .ikonli-font-icon {
    -fx-icon-color: -jr-theme-text;
    -fx-fill: -jr-theme-text;
    -fx-font-size: 1.1em;
}

.quick-settings-dialog-container {
    -fx-padding: 1.333em;
    -fx-spacing: 1.333em;
    -fx-pref-width: 42.667em;
    -fx-font-size: 1em;
}

.quick-settings-dialog-container > HBox {
    -fx-alignment: center-left;
    -fx-spacing: 0.667em;
}

.quick-settings-dialog-container > ScrollPane {
    -fx-border-width: 0.083em;
    -fx-border-color: derive(-fx-base, -20%);
    -fx-border-radius: 0.333em;
}

/* Quick Settings: Theme Selection */
.theme-option {
    -fx-padding: 0.667em;
    -fx-border-radius: 0.333em;
    -fx-background-radius: 0.333em;
    -fx-spacing: 1em;
    -fx-alignment: center-left;
}

.theme-option:hover {
    -fx-background-color: rgba(0, 0, 0, 0.05);
}

/* Wireframe base styles */
.wireframe-container {
    -fx-border-width: 0.0625em;
    -fx-border-radius: 0.25em;
    -fx-background-radius: 0.25em;
    -fx-effect: dropshadow(three-pass-box, rgba(0, 0, 0, 0.1), 0.125em, 0.0, 0, 0.0625em);
    -fx-border-color: -jr-wf-border-color;
}

.wireframe-menubar {
    -fx-padding: 0.1875em 0.0625em;
    -fx-background-color: -jr-wf-menubar-bg;
}

.wireframe-menu-item {
    -fx-border-radius: 0.0625em;
    -fx-background-radius: 0.0625em;
    -fx-background-color: -jr-wf-menu-item-bg;
}

.wireframe-toolbar {
    -fx-padding: 0.125em;
    -fx-spacing: 0.375em;
    -fx-background-color: -jr-wf-toolbar-bg;
}

.wireframe-tool-item {
    -fx-border-radius: 0.0625em;
    -fx-background-radius: 0.0625em;
    -fx-background-color: -jr-wf-tool-item-bg;
}

.wireframe-search {
    -fx-border-width: 0.03125em;
    -fx-border-radius: 0.125em;
    -fx-background-radius: 0.125em;
    -fx-background-color: -jr-wf-search-bg;
    -fx-border-color: -jr-wf-search-border;
}

.wireframe-search-field {
    -fx-border-radius: 0.0625em;
    -fx-background-radius: 0.0625em;
    -fx-background-color: -jr-wf-search-field-bg;
}

.wireframe-sidebar {
    -fx-padding: 0.25em 0.125em;
    -fx-background-color: -jr-wf-sidebar-bg;
}

.wireframe-sidebar-item {
    -fx-border-radius: 0.0625em;
    -fx-background-radius: 0.0625em;
    -fx-background-color: -jr-wf-sidebar-item-bg;
}

.wireframe-welcome-tab-area {
    -fx-padding: 0.25em;
    -fx-alignment: center;
    -fx-background-color: -jr-wf-welcome-area-bg;
}

.wireframe-welcome-tab-item {
    -fx-border-radius: 0.0625em;
    -fx-background-radius: 0.0625em;
    -fx-background-color: -jr-wf-welcome-item-bg;
}

/* Other color scheme */
.wireframe-light {
    -jr-wf-menubar-bg: #f9f9f9;
    -jr-wf-menu-item-bg: -jr-gray-1;
    -jr-wf-toolbar-bg: #f9f9f9;
    -jr-wf-tool-item-bg: -jr-theme;
    -jr-wf-search-bg: -jr-white;
    -jr-wf-search-border: #dddddd;
    -jr-wf-search-field-bg: #f8f8f8;
    -jr-wf-sidebar-bg: -jr-gray-1;
    -jr-wf-sidebar-item-bg: -jr-theme;
    -jr-wf-welcome-area-bg: #f3f3f3;
    -jr-wf-welcome-item-bg: #dddddd;
}

.wireframe-dark {
    -jr-wf-menubar-bg: #141824;
    -jr-wf-menu-item-bg: #424758;
    -jr-wf-toolbar-bg: #141824;
    -jr-wf-tool-item-bg: #2c9490;
    -jr-wf-search-bg: #2c2e3b;
    -jr-wf-search-border: #424758;
    -jr-wf-search-field-bg: #424758;
    -jr-wf-sidebar-bg: #212330;
    -jr-wf-sidebar-item-bg: #2c9490;
    -jr-wf-welcome-area-bg: #272b38;
    -jr-wf-welcome-item-bg: #7d8591;
}

.wireframe-custom {
    -jr-wf-menubar-bg: #f5ffe5;
    -jr-wf-menu-item-bg: #346963;
    -jr-wf-toolbar-bg: #f5ffe5;
    -jr-wf-tool-item-bg: #2E838C;
    -jr-wf-search-bg: -jr-white;
    -jr-wf-search-border: #2E838C;
    -jr-wf-search-field-bg: #f0f3ff;
    -jr-wf-sidebar-bg: #e1ebd1;
    -jr-wf-sidebar-item-bg: #2E838C;
    -jr-wf-welcome-area-bg: #E8F2D8;
    -jr-wf-welcome-item-bg: #2E838C;
}

/* Quick Settings: Optimization Checkboxes */
.optimization-checkboxes {
    -fx-padding: 0 0 0 1em;
    -fx-spacing: 1.333em;
}

/* Quick Settings: Push Application Configuration */
.applications-list {
    -fx-pref-height: 16.667em;
    -fx-pref-width: 33.333em;
}

.application-item {
    -fx-padding: 0.667em;
    -fx-border-radius: 0.333em;
    -fx-background-color: transparent;
}

.detected-application {
    -fx-background-color: derive(-jr-accent, 80%);
    -fx-font-weight: bold;
}

.application-item:filled:selected {
    -fx-background-color: -jr-accent;
    -fx-text-fill: white;
}

.detected-application .glyph-icon,
.detected-application .ikonli-font-icon {
    -fx-icon-color: -jr-theme-text;
    -fx-fill: -jr-theme-text;
}

/* Quick Settings: Online Fetchers */
.fetchers-container {
    -fx-padding: 1em;
    -fx-spacing: 1em;
}

/* Walkthrough Styles */
.walkthrough-overlay {
    -fx-background-color: transparent;
}

.walkthrough-spotlight {
    /* -jr-blue-gray-4 with 75% Alpha */
    -fx-fill: rgba(34, 47, 62, 0.75);
}

.walkthrough-ping {
    /* -jr-accent with 75% Alpha */
    -fx-fill: rgba(163, 183, 230, 0.75);
}

.walkthrough-darken {
    /* -jr-blue-gray-4 with 75% Alpha */
    -fx-fill: rgba(34, 47, 62, 0.75);
}

/* Tooltip Content */
.walkthrough-tooltip-content-container {
    -fx-background-color: -jr-background-alt;
}

.walkthrough-tooltip .border {
    /* The arrow of the PopOver. Need to override the default `.popover > .border` (https://github.com/controlsfx/controlsfx/blob/194b10bb948389bf18c463006adcec7c92ca6403/controlsfx/src/main/resources/org/controlsfx/control/popover.css#L8) */
    /* -jr-background-alt. Variable is not used because the variable cannot be properly resolved and lead to transparent fill. */
    -fx-fill: #f3f3f3 !important;
}

.walkthrough-tooltip-content-container {
    -fx-spacing: 1em;
    -fx-padding: 1em;
}

.walkthrough-title-container {
    -fx-max-width: infinity;
}

.walkthrough-tooltip-title > *,
.walkthrough-title > * {
    -fx-text-fill: -jr-theme!important;
    -fx-fill: -jr-theme!important;
    -fx-font-weight: bold;
    -fx-font-size: 1.75em;
    -fx-line-spacing: -0.25em;
}

.walkthrough-side-panel-vertical,
.walkthrough-side-panel-horizontal {
    -fx-spacing: 1em;
    -fx-padding: 2em;
    -fx-background-color: -jr-background-alt;
}

.walkthrough-side-panel-vertical {
    -fx-pref-width: 32em;
    -fx-max-width: 32em;
    -fx-min-width: 32em;
}

.walkthrough-side-panel-horizontal {
    -fx-pref-height: 18em;
    -fx-max-height: 18em;
    -fx-min-height: 18em;
}

.walkthrough-content {
    -fx-spacing: 1.5em;
}

/* Text content containers and flows */
.walkthrough-text-container {
    -fx-max-width: infinity;
}

.walkthrough-text-content {
    -fx-text-fill: -fx-text-base-color;
    -fx-font-size: 1.2em;
    -fx-line-spacing: 0.5em;
}

/* Info block styling */
.walkthrough-info-container {
    -fx-border-color: -jr-theme;
    -fx-border-width: 0 0 0 0.15em;
    -fx-padding: 0 0 0 0.75em;
    -fx-spacing: 0.5em;
    -fx-alignment: top-left;
}

.walkthrough-info-container .ikonli-font-icon {
    -fx-icon-color: -jr-theme;
    /* 20px is used, since using em seems to lead infinite icon size growth */
    -fx-icon-size: 20px;
    /* Center align icon with the text */
    -fx-translate-y: -0.05em;
}

.walkthrough-info-text {
    -fx-text-fill: -jr-theme;
    -fx-font-size: 1.2em;
    -fx-line-spacing: 0.5em;
}

/* Action buttons */
.walkthrough-actions {
    -fx-spacing: 0;
}

.walkthrough-right-actions {
    -fx-spacing: 0.5em;
}

.walkthrough-continue-button {
    -fx-background-color: -jr-theme;
    -fx-text-fill: -jr-white;
    -fx-font-size: 1.1em;
    -fx-border-radius: 0.25em;
    -fx-background-radius: 0.25em;
    -fx-padding: 0.25em 0.5em;
}

.walkthrough-skip-button {
    -fx-background-color: transparent;
    -fx-text-fill: -jr-theme;
    -fx-font-size: 1.1em;
    -fx-border-color: -jr-theme;
    -fx-border-width: 0.08em;
    -fx-border-radius: 0.25em;
    -fx-background-radius: 0.25em;
    -fx-padding: 0.25em 0.5em;
}

.walkthrough-back-button {
    -fx-background-color: transparent;
    -fx-text-fill: -jr-theme;
    -fx-font-size: 1.1em;
    -fx-border-radius: 0.25em;
    -fx-background-radius: 0.25em;
    -fx-padding: 0.25em 0.5em;
}

.walkthrough-quit-button {
    -fx-background-color: -jr-base;
    -fx-border-color: transparent;
    /* For easy clipping */
    -fx-padding: 0.5em;
    -fx-min-width: 2em;
    -fx-min-height: 2em;
    -fx-pref-width: 2em;
    -fx-pref-height: 2em;
    -fx-max-width: 2em;
    -fx-max-height: 2em;
}

.walkthrough-quit-button:hover {
    -fx-background-color: derive(-jr-base, -20%);
}

.walkthrough-quit-button:pressed {
    -fx-background-color: derive(-jr-base, 30%);
}

.walkthrough-quit-button .glyph-icon,
.walkthrough-quit-button .ikonli-font-icon {
    -fx-icon-color: -jr-theme;
    -fx-fill: -jr-theme;
    -fx-text-fill: -jr-theme;
    -fx-font-size: 1.2em;
}

.walkthrough-fullscreen-content {
    -fx-padding: 0.1875em;
    -fx-spacing: 1em;
    -fx-max-width: 48em;
    -fx-fill-width: true;
}

/* Markdown styles */
.markdown-textflow {
    -fx-text-alignment: left;
}

.markdown-textflow > * {
    -fx-fill: -fx-text-base-color;
}

.markdown-h1 {
    -fx-font-size: 2em;
    -fx-font-weight: bold;
}

.markdown-h2 {
    -fx-font-size: 1.5em;
    -fx-font-weight: bold;
}

.markdown-h3 {
    -fx-font-size: 1.25em;
    -fx-font-weight: bold;
}

.markdown-h4 {
    -fx-font-size: 1.1em;
    -fx-font-weight: bold;
}

.markdown-h5 {
    -fx-font-size: 1em;
    -fx-font-weight: bold;
}

.markdown-h6 {
    -fx-font-size: 0.875em;
    -fx-font-weight: bold;
}

.markdown-bold {
    -fx-font-weight: bold;
}

.markdown-italic {
    -fx-font-style: italic;
}

.markdown-code {
    -fx-font-family: monospace;
    -fx-fill: -jr-theme;
    -fx-effect: dropshadow(gaussian, rgba(0, 0, 0, 0.1), 1, 0, 0, 1);
}

.markdown-code-block {
    -fx-font-family: monospace;
    -fx-fill: -fx-text-base-color;
}

.markdown-list-bullet {
    -fx-fill: -jr-theme;
    -fx-font-weight: bold;
}

.markdown-list-number {
    -fx-fill: -jr-theme;
    -fx-font-weight: bold;
}

.markdown-blockquote-marker {
    -fx-fill: transparent;
}

.markdown-blockquote {
    -fx-fill: -fx-mid-text-color;
    -fx-font-style: italic;
}

.markdown-link {
    -fx-text-fill: -jr-theme;
    -fx-underline: true;
}

.markdown-link:hover {
    -fx-text-fill: #004499;
}

.invalid-path {
    -fx-background-color: rgba(238, 82, 83, 0.2);
    -fx-border-color: -jr-error;
    -fx-border-width: 1px;
}

.checkbox-flowpane {
    -fx-hgap: 1.5em;
    -fx-vgap: 0.8em;
}

/* Automatic Field Editor */
.edit-field-content-pane {
    -fx-padding: 0em 1em;
    -fx-spacing: 1em;
}

.edit-field-content-pane .text-field {
    -fx-padding: 0.5625em 0.75em;
}

.edit-field-content-pane .actions {
    -fx-spacing: 0.75em;
    -fx-alignment: BASELINE_LEFT;
}

.edit-field-content-pane .grid-pane {
    -fx-hgap: 0.75em;
    -fx-vgap: 0.75em;
}

.edit-field-content-pane .grid-pane .label {
    -fx-min-width: 3.5em;
}

.automatic-field-editor .button-bar .button:default {
    -fx-min-width: 12em;
}
